/**
 * 通过项目id获取localStorage
 * @param {string} projectId 项目id
 */
export function getStoredData(projectId) {
  if (!window.localStorage) {
    return {}
  }
  const storegeStr = localStorage.getItem(projectId)
  if (storegeStr) {
    try {
      const storegeObj = JSON.parse(storegeStr)[projectId]
      return storegeObj || {}
    } catch (error) {
      console.log(error)
    }
  } else {
    return {}
  }
}

/**
 * 深度冻结
 * @param {*} obj 需要冻结的对象
 */
export function deepFreeze(obj) {
  // 取回定义在obj上的属性名
  let propNames = Object.getOwnPropertyNames(obj)

  // 在冻结自身之前冻结属性
  propNames.forEach(function(name) {
    let prop = obj[name]

    // 如果prop是个对象，冻结它
    if (typeof prop == 'object' && prop !== null) deepFreeze(prop)
  })

  // 冻结自身(no-op if already frozen)
  return Object.freeze(obj)
}
